1175fb4fa84272d4a6174e69262e8406a9b44b8c,app/src/main/java/tk/wasdennnoch/androidn_ify/systemui/qs/QSContainerHelper.java,QSContainerHelper,notificationPanelViewOnLayout,#XC_MethodHook.MethodHookParam#Class#,123
Before Change
setQsExpansion((float) XposedHelpers.callMethod(param.thisObject, "getQsExpansionFraction"),
(float) XposedHelpers.callMethod(param.thisObject, "getHeaderTranslation"));
}
XposedHelpers.callMethod(notificationPanelView, "updateStackHeight", (float) XposedHelpers.callMethod(notificationPanelView, "getExpandedHeight"));
XposedHelpers.callMethod(notificationPanelView, "updateHeader");
XposedHelpers.callMethod(mNotificationStackScroller, "updateIsSmallScreen", mHeaderHeight);
// If we are running a size change animation, the animation takes care of the height of
// the container. However, if we are not animating, we always need to make the QS container
// the desired height so when closing the QS detail, it stays smaller after the size change
// animation is finished but the detail view is still being animated away (this animation
// takes longer than the size change animation).
if (XposedHelpers.getObjectField(notificationPanelView, "mQsSizeChangeAnimator") == null) {
if (mQsMaxExpansionHeight != -1) mQsMaxExpansionHeight -= mHeaderHeight;
XposedHelpers.callMethod(mQSContainer, "setHeightOverride", mQsMaxExpansionHeight);
}
After Change
if (mQsExpanded && XposedHelpers.getBooleanField(notificationPanelView, "mQsFullyExpanded")) {
XposedHelpers.setIntField(notificationPanelView, "mQsExpansionHeight", mQsMaxExpansionHeight);
XposedHelpers.callMethod(notificationPanelView, "requestScrollerTopPaddingUpdate", false);
if (ConfigUtils.M) {
XposedHelpers.callMethod(notificationPanelView, "requestPanelHeightUpdate");
// Size has changed, start an animation.
if (mQsMaxExpansionHeight != oldMaxHeight) {
XposedHelpers.callMethod(notificationPanelView, "startQsSizeChangeAnimation", oldMaxHeight, mQsMaxExpansionHeight);
}
}
} else if (!mQsExpanded) {
setQsExpansion((float) XposedHelpers.callMethod(param.thisObject, "getQsExpansionFraction"),
(float) XposedHelpers.callMethod(param.thisObject, "getHeaderTranslation"));
if (!ConfigUtils.M) {
XposedHelpers.callMethod(mNotificationStackScroller, "setStackHeight", (float) XposedHelpers.callMethod(notificationPanelView, "getExpandedHeight"));
XposedHelpers.callMethod(notificationPanelView, "updateHeader");
}
}
if (ConfigUtils.M) {
XposedHelpers.callMethod(notificationPanelView, "updateStackHeight", (float) XposedHelpers.callMethod(notificationPanelView, "getExpandedHeight"));
XposedHelpers.callMethod(notificationPanelView, "updateHeader");
}
XposedHelpers.callMethod(mNotificationStackScroller, "updateIsSmallScreen", mHeaderHeight);
if (ConfigUtils.M) {
// If we are running a size change animation, the animation takes care of the height of
// the container. However, if we are not animating, we always need to make the QS container
// the desired height so when closing the QS detail, it stays smaller after the size change
// animation is finished but the detail view is still being animated away (this animation
// takes longer than the size change animation).
if (XposedHelpers.getObjectField(notificationPanelView, "mQsSizeChangeAnimator") == null) {
if (mQsMaxExpansionHeight != -1) mQsMaxExpansionHeight -= mHeaderHeight;
XposedHelpers.callMethod(mQSContainer, "setHeightOverride", mQsMaxExpansionHeight);
}